package com.expert.miniapp.service;

import com.expert.miniapp.dao.TechAchievement;
import com.github.pagehelper.PageInfo;
import java.util.List;

/**
 * 科技成果业务逻辑接口
 * 提供科技成果相关的业务操作方法
 */
public interface TechAchievementService {

    /**
     * 根据成果ID获取科技成果详情
     * @param achievementId 成果ID
     * @return 科技成果实体，如果不存在则返回null
     */
    TechAchievement getAchievementById(String achievementId);

    /**
     * 根据技术分类获取科技成果列表
     * @param category 技术分类名称
     * @return 符合条件的科技成果列表
     */
    List<TechAchievement> getAchievementsByCategory(String category);

    /**
     * 获取所有科技成果列表（支持分页）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 科技成果分页信息
     */
    PageInfo<TechAchievement> getAllAchievements(Integer pageNum, Integer pageSize);

    /**
     * 按权重获取推荐科技成果列表（支持分页）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 推荐科技成果分页信息
     */
    PageInfo<TechAchievement> getRecommendedAchievements(Integer pageNum, Integer pageSize);

    /**
     * 模糊搜索科技成果（支持分页）
     * @param keyword 搜索关键词
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 搜索结果分页信息
     */
    PageInfo<TechAchievement> searchAchievements(String keyword, Integer pageNum, Integer pageSize);
}